The CDMA (code division multiple access) standard has been used for quite some time to carry out wireless communication between transmitters and receivers (e.g. between base stations and cellular phones). With CDMA, it is possible, through the use of multiple spreading codes, for multiple users to share the same frequency. While CDMA has been effective, it is now reaching its upper limits in terms of traffic carrying capability. In an attempt to increase the amount of information that can be sent wirelessly during the same amounts of time, a new standard known as WCDMA (wideband code division multiple access) has been developed. With WCDMA, it is possible to vary the spreading factors applied to various sets of information. It is also possible to send information on multiple channels to the same user. With these and other capabilities, WCDMA is able to carry more traffic than traditional CDMA.
With WCDMA, a combination of spreading and scrambling is used to effect wireless communication. On the transmitter side, information may be processed as follows. Initially, one or more sets of digital information are processed to derive one or more symbol information sets that represent the digital information. The symbol information sets have an I (in-phase) component and a Q (quadrature phase) component. Once derived, the symbol information sets are processed in accordance with a spreading factor. According to the current WCDMA standard, the spreading factor is variable and can range between 4 and 512 (this is in contrast to CDMA, where the spreading factor is a constant 64). The spreading factor defines the resolution (the spreading gain) of the information that it is used to spread. The greater the spreading factor, the more the resolution, and hence, the more precisely the information can be captured. Greater resolution comes with a tradeoff, however. The larger the spreading factor, the less information that can be sent in a single frame. To illustrate this point, according to the current WCDMA standard, a frame consists of 38,400 chip times or chip cycles (the chip rate is 3.84 MHz, so one chip time or chip cycle is 1/3.84M). If the spreading factor is 4 (meaning that a set of symbol information is spread over 4 chip times), then the maximum number of sets of symbol information that can be sent in a single frame is 38,400/4 or 9,600. In contrast, if the spreading factor is 256 (meaning that a set of symbol information is spread over 256 chip times), then only 38,400/256 or 150 sets of symbol information will be able to be sent in a single frame. Thus, the choice of a spreading factor involves the balancing of the amount of information that is desired to be sent and the precision that is desired for the information. In WCDMA, the spreading factor in certain data channels is variable and can change from frame to frame. Since the spreading factor can change, and since the spreading factor affects the number of symbol information sets that can be sent in a single frame, this means that the number of symbol information sets that can be sent in a single frame can change from frame to frame (i.e. from time period to time period).
After a spreading factor is applied to the symbol information sets to derive a set of spreaded information sets, a scrambling code is applied to the spreaded information sets to derive a set of scrambled information sets. The scrambling code is unique to a particular receiver; thus, after the scrambled information sets are derived, only the particular receiver will be able to decipher and comprehend the scrambled information sets. Thereafter, the scrambled information sets are converted into analog RF (radio frequency) signals, and sent out on one or more antennas.
On the receiver side, the opposite process is carried out. Specifically, the receiver receives the RF signals and converts them back into digital signals. The digital signals are then descrambled using the scrambling code to derive a set of descrambled information sets. The descrambled information sets are then de-spreaded using an appropriate spreading factor to derive a set of de-spreaded information sets. The symbol information sets are then extracted from the de-spreaded information sets. If the transmission mechanism and medium were perfect, this set of symbol information sets would be the same as that on the transmitter side. However, because of such factors as channel distortion and antenna gain, the symbol information sets were probably altered in the course of transmission so that they are no longer the same as the symbol information sets on the transmitter side. To compensate for this, the receiver computes a set of compensation information, which may include channel compensation information and antenna gain information. This compensation information may be used to derive one or more compensation factors which may be processed with the symbol information sets to adjust them to compensate for the channel distortion and the antenna gain.
The derivation of the compensation factors takes time. Because of this, the symbol information sets cannot be processed right after they are extracted from the de-spreaded information sets. Rather, they need to be delayed until the compensation factors are derived. Thus, a delay mechanism is needed within the receiver.
While the concept of delaying the symbol information sets is simple, its implementation can be quite complex and difficult. Much of the difficulty stems from the fact that the rate at which symbol information sets are received can change from frame to frame. As noted above, different frames can have different spreading factors, and different spreading factors lead to different information rates (different numbers of symbol information sets being received during a frame). For example, in a first frame having a spreading factor of 4, 9600 symbol information sets may be received, while in a subsequent frame having a spreading factor of 256, 150 symbol information sets may be received. This large divergence in the number of information sets received from frame to frame makes it very difficult for a delay circuitry to impose a consistent delay on the information sets.
In one possible approach, a combination of a data buffer and a control circuitry may be used. The data buffer may be used to store the information sets, and the control circuitry may be used to control the storing, delaying, and outputting of the information sets from the buffer. This approach has a significant drawback in that it requires a highly complex and difficult-to-design control circuitry to properly control the timing of the storing and outputting of information sets from the buffer. This complex control circuitry would add undesired cost and complexity to the receiver. This approach also does not adjust very gracefully to the changes in spreading factor and the resultant changes in information rates from frame to frame. Because of these and other shortcomings, this possible approach does not provide satisfactory results. Hence, an improved delay mechanism is needed.